コンポーネントに求められるもの、あるいはWeb Componentsに足りないもの
まとまったらJSConfJP 2024とかなんらかで話してみたい内容
概要
code:初期概要.md
現代のフロントエンド開発ではReactやVue、SvelteといったUIライブラリ・フレームワークを使ったコンポーネント指向設計により、再利用可能な単位で切り分けたUIとして閉じ込めたコンポーネントが作られるようになりました。
Web標準におけるコンポーネントといえば「Web Components」が挙げられます。独自の要素を規定してあらゆる環境下でも使えるようにするもので、さまざまな要件が提案・実装されています。Web上のソフトウェア開発で標準仕様を活用することは、プラットフォームの資産を活かした安定的かつ持続的な開発が可能となります。
ですがWeb Componentsを活用した開発は、UIライブラリ・フレームワークによる開発と比較すると圧倒的に少ないといえます。
このセッションでは、プラットフォームとしてのWeb Componentsと、コンポーネント開発ができるようになったエコシステムの歴史を振り返りつつ、現在「コンポーネント」を作るには何が必要なのか、あるいはWeb Componentsに足りていないものは何なのかを考察していきます。
ChatGPTに修正してもらった概要
code:chatgpt.md
モダンなフロントエンド開発において、React、Vue、SvelteなどのUIライブラリやフレームワークを使用したコンポーネント指向の設計は、再利用可能な単位に分割されたUIの作成を可能にしてきました。
標準仕様に基づく「Web Components」は、安定した、持続可能なWeb開発を支える重要な技術です。しかし、現状ではWeb Componentsを使った開発は、UIライブラリやフレームワークほど一般的ではありません。
このセッションでは、Web Componentsの歴史と、そのエコシステムを振り返りながら、今日の「コンポーネント」開発に必要な要素と、Web Componentsが不足している点について議論します。また、Web Componentsを既存の開発環境にどう統合し、具体的な使用シナリオを通じて明日から実践できる方法についても紹介します。Web Componentsには何が足りないのか?そして、どのように活用すれば良いのか?
上記をもとに修正
code:最終提出.md
モダンフロントエンド開発における、React、Vue、SvelteなどのUIライブラリ・フレームワークを使用したコンポーネント指向設計は、再利用可能な単位に分割されたUIとしてのコンポーネント開発を容易にしてきました。
一方、Web標準に基づく「Web Components」は、フレームワークに依存せず、モダンブラウザで動作できるコンポーネントです。標準仕様に基づくことは、Webプラットフォーム自体が進化しても、互換性の維持されているため長期的に安定した持続可能なコンポーネント開発が可能です。
しかし、Web Componentsを使ったコンポーネント開発はUIライブラリ・フレームワークのものと比較しても一般的ではありません。
このセッションでは、コンポーネント指向設計を可能にしてきたエコシステムを振り返りながら、今日の「コンポーネント」開発に必要なものは何か、あるいはWeb Componentsで不足している点についてを考察していきます。
UI開発をする中で必要となる概念としてコンポーネントがある
コンポーネント指向があるけどそもそもコンポーネントとは何か?を考える
フロントエンドではよくある話
React.js
初めてのコンポーネント – React
そもそも何がコンポーネントで何がコンポーネントではないのか?
どこからがコンポーネントと呼べるのか?という話
どういうものがコンポーネントだったら嬉しいんだっけ?
コンポーネントの歴史を振り返りつつ、Web Componentsとの差分を考えてみる
CSS設計
FLOCSS
Atomic Design
React.js
JSX
関数コンポーネント、クラスコンポーネント
React Server Componentsという存在
サーバーの世界にReactを登場させる
Nuxt Server Componentsも
Vue.jsやSvelte
SFCという概念
独自拡張子
Angular
コンポーネントの構造 • Angular 日本語版
RailsのViewComponent
Web Componentsとは結局なんだったのだろうか?
Web Componentsには何が足りない?
構成するもの
Custom Elements
Shadow DOM
HTML テンプレート
足りないもの
SSR→Declarative Shadow DOM
コンポーネントの設計は組織の傾向を顕著に表わすものになる
Web Components元年はもう来ないかもしれない
UI = f(state)の話
UIとは何か?
ABOUT FACE インタラクションデザインの本質
コンポーネント指向ソフトウェア設計
Java
Component (Java Platform SE 8)
コンポーネントは、画面上に表示でき、ユーザーと対話できる、グラフィカルな表現を持つオブジェクトです。コンポーネントとしては、典型的なグラフィカル・ユーザー・インタフェースのボタン、チェックボックス、スクロール・バーなどがあります。
Open UIでHTMLには足りなかった有用なコンポーネントが生まれる?
HTMLはUIではない
HTML Web Components - Jim Nielsen’s Blog
A (probably not) unbiased critique of Web Components, among other things – Conffab
Web Components Are Not the Future - DEV Community
Web Components Are Not the Future — They’re the Present
[翻訳]Web Componentsに祝杯を? - yuhei blog
加速するコンポーネント設計入門 / Component Design as an Accelerator - Speaker Deck